package sv.mecca.modelo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import sv.mecca.form.TratamientosForm;
import sv.mecca.form.UsuariosForm;

public class UsuariosModelo extends Conexion {
	private static final long serialVersionUID = 4747601351291183179L;

	/**
	 * Metodo para registrar un usuario
	 * 
	 * @param u
	 * @throws SQLException
	 */
	public void saveUsuario(UsuariosForm u) throws SQLException {
		try {
			save("INSERT INTO usuarios(nombres, apellidos, id_tipo_usuario, usuario, clave, direccion, telefono, correo) VALUES('"
					+ u.getNombres()
					+ "', '"
					+ u.getApellidos()
					+ "', "
					+ u.getId_tipo_usuario()
					+ ", '"
					+ u.getUsuario()
					+ "', '"
					+ u.getClave()
					+ "', '"
					+ u.getDireccion()
					+ "', '"
					+ u.getTelefono() + "', '" + u.getCorreo() + "')");
		} catch (Exception e) {
			System.out.println("Error al guardar el usuario " + e.getMessage());
		}
	}

	/**
	 * Metodo para actualizar un usuario
	 * 
	 * @param u
	 * @throws SQLException
	 */
	public void updateUsuario(UsuariosForm u) throws SQLException {
		try {
			update("UPDATE usuarios SET nombres = '" + u.getNombres()
					+ "', apellidos = '" + u.getApellidos()
					+ "', id_tipo_usuario = " + u.getId_tipo_usuario()
					+ ", usuario = '" + u.getUsuario() + "', clave = '"
					+ u.getClave() + "', direccion = '" + u.getDireccion()
					+ "', telefono = '" + u.getTelefono() + "', correo = '"
					+ u.getCorreo() + "' WHERE id_usuario = "
					+ u.getId_usuario());
		} catch (Exception e) {
			System.out.println("Error al actualizar el usuario "
					+ e.getMessage());
		}
	}

	/**
	 * Metodo para borrar un usuario
	 * 
	 * @param u
	 * @throws SQLException
	 */
	public void deleteUsuario(UsuariosForm u) throws SQLException {
		try {
			delete("DELETE FROM usuarios WHERE id_usuario = "
					+ u.getId_usuario());
		} catch (Exception e) {
			System.out.println("Error al eliminar al usuario " + e.getMessage());
		}
	}

	/**
	 * Metodo para listar a todos los usuarios
	 * 
	 * @return
	 * @throws SQLException
	 */
	public ArrayList<UsuariosForm> listado() throws SQLException {
		ArrayList<UsuariosForm> u = new ArrayList<UsuariosForm>();
		ResultSet rs = executeQueryList("SELECT * FROM usuarios"
				+ " u INNER JOIN tipos_usuarios tu ON u.id_tipo_usuario = tu.id_tipo_usuario");
		while (rs.next()) {
			UsuariosForm t = new UsuariosForm(rs.getInt(1), rs.getString(2),
					rs.getString(3), rs.getInt(4), rs.getString("tipo"), rs.getString(5),
					rs.getString(6), rs.getString(7), rs.getString(8),
					rs.getString(9));
			u.add(t);
		}
		return u;
	}
}